package com.bravo.sms.listener;

import com.github.qcloudsms.SmsSingleSender;
import com.github.qcloudsms.SmsSingleSenderResult;
import com.github.qcloudsms.httpclient.HTTPException;
import lombok.extern.slf4j.Slf4j;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import java.io.IOException;

/**
 * @author: Yuyong
 * @create: 2019-08-28 17:25
 **/

@Slf4j
@Component
public class SmsUtil {

    // 短信应用SDK AppID
    @Value("${}")
    private int appid; // 1400开头

    // 短信应用SDK AppKey
    @Value("${}")
    private String appkey;

    // 短信模板ID，需要在短信应用中申请
    @Value("${}")
    private int templateId; // NOTE: 这里的模板ID`7839`只是一个示例，真实的模板ID需要在短信控制台中申请

    // 签名
    // NOTE: 这里的签名"腾讯云"只是一个示例，真实的签名需要在短信控制台中申请，另外签名参数使用的是`签名内容`，而不是`签名ID`
    @Value("${}")
    String smsSign;


    public String sendSms(String phoneNumber,String code,String expirTime){

        String[] params = {code,expirTime};
        SmsSingleSender ssender = new SmsSingleSender(appid, appkey);
        SmsSingleSenderResult result = null;
        try {
            result = ssender.sendWithParam("86", phoneNumber,templateId,
                    params, smsSign, "","");
        } catch (HTTPException e) {
            e.printStackTrace();
            log.error(e.getMessage());
        } catch (IOException e) {
            e.printStackTrace();
            log.error(e.getMessage());
        }
        log.info(result.toString());
        return new JSONObject(result.toString()).get("result").toString();
    }


    
    public static void main(String[] args) throws HTTPException, IOException {

        // 短信应用SDK AppID
        int appid = 1400250457; // 1400开头

        // 短信应用SDK AppKey
        String appkey = "46234259315c2af6cd67be55074879b3";

        // 需要发送短信的手机号码
        String[] phoneNumbers = {"18984001698"};

        // 短信模板ID，需要在短信应用中申请
        int templateId = 406501; // NOTE: 这里的模板ID`7839`只是一个示例，真实的模板ID需要在短信控制台中申请
        String[] params = {"9527","15"};
        // 签名
        // NOTE: 这里的签名"腾讯云"只是一个示例，真实的签名需要在短信控制台中申请，另外签名参数使用的是`签名内容`，而不是`签名ID`
        String smsSign = "魔序世界";

        SmsSingleSender ssender = new SmsSingleSender(appid, appkey);
    SmsSingleSenderResult result = ssender.sendWithParam("86", phoneNumbers[0],templateId,
            params, smsSign, "","");
        log.info(result.toString());
                }

                }
